From 4cb2231a530e93638c82162a2012f55dff6119eb Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Sun, 4 Aug 2024 12:12:05 -0500 Subject: [PATCH] Distribute improved Makefile --- src/pgwui_develop/TEMPLATE/Makefile_pgwui.mk | 58 ++++++++++++-------- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/src/pgwui_develop/TEMPLATE/Makefile_pgwui.mk b/src/pgwui_develop/TEMPLATE/Makefile_pgwui.mk index ee23a59..1cc26bc 100644 --- a/src/pgwui_develop/TEMPLATE/Makefile_pgwui.mk +++ b/src/pgwui_develop/TEMPLATE/Makefile_pgwui.mk @@ -29,22 +29,22 @@ # This works on debian... -PYTHON_EXE=python3 -VIRTUALENV=${PYTHON_EXE} -m venv +PYTHON_EXE := python3 +VIRTUALENV := $(PYTHON_EXE) -m venv # (Optional) where pyenv is installed (git clone somepath) # For running tox against multiple python versions PYENV_INSTALLATION := $(HOME)/.pyenv PYENV_BIN := $(PYENV_INSTALLATION)/bin TARGETS = -EXTRA_TARGETS = README.html -SETUPTOOLS_STUFF = build dist src/${PGWUI_COMPONENT}.egg-info -PYTEST_STUFF = .cache \ +EXTRA_TARGETS := README.html +SETUPTOOLS_STUFF := build dist src/${PGWUI_COMPONENT}.egg-info +PYTEST_STUFF := .cache \ src/${PGWUI_COMPONENT}/__pycache__ \ src/${PGWUI_COMPONENT}/views/__pycache__ \ tests/__pycache__ tests/views/__pycache__ -COVERAGE_STUFF = .coverage -TOX_STUFF = .tox +COVERAGE_STUFF := .coverage +TOX_STUFF := .tox include help.mk @@ -67,7 +67,7 @@ publish: check-manifest upload push ## run_tests Run regression tests .PHONY: run_tests -run_tests: devel/testenv +run_tests: devel/testenv dist if [ -x $(PYENV_BIN)/pyenv ] ; then \ (set -e ; \ export PYENV_ROOT=$(PYENV_INSTALLATION) ; \ @@ -121,22 +121,19 @@ upload: ## check Quick run of all regression tests, ## only with the default python .PHONY: check -check: devel/pytest - devel/pytest/bin/flake8 . +check: devel/pytest run-linters devel/pytest/bin/py.test --cov=${PGWUI_COMPONENT} tests ## check-unit Quick run of unit regression tests, ## only with the default python .PHONY: check-unit -check-unit: devel/pytest - devel/pytest/bin/flake8 . +check-unit: devel/pytest run-linters devel/pytest/bin/py.test -m unittest --cov=${PGWUI_COMPONENT} tests ## check-integration Quick run of integration regression tests, ## only with the default python .PHONY: check-integration -check-integration: devel/pytest - devel/pytest/bin/flake8 . +check-integration: devel/pytest run-linters devel/pytest/bin/py.test -m integrationtest \ --cov=${PGWUI_COMPONENT} tests @@ -146,8 +143,7 @@ check-integration: devel/pytest ## FILE=test_mymodule.py TEST=test_somefunction \ ## make check-debug .PHONY: check-debug -check-debug: devel/pytest - devel/pytest/bin/flake8 . +check-debug: devel/pytest run-linters devel/pytest/bin/py.test --trace tests/${FILE}::${TEST} ## pudb Run the python pudb debugger @@ -186,14 +182,24 @@ update_testenv: devel/testenv # Development related targets +DEVEL_DEPS := setup.py pyproject.toml MANIFEST.in + +# Run linters +.PHONY: run-linters +run-linters: devel/pytest + devel/pytest/bin/flake8 . + if [ -e .yamllint.yaml ] ; then \ + devel/pytest/bin/yamllint --strict . ; \ + fi # Re-create development environment when build environment changes -devel: setup.py pyproject.toml MANIFEST.in +devel: $(DEVEL_DEPS) rm -rf devel ${TOX_STUFF} - mkdir devel + mkdir -p devel # virtualenv for package building -devel/buildenv: devel +devel/buildenv: $(DEVEL_DEPS) + mkdir -p devel [ -d devel/buildenv ] \ || ( ${VIRTUALENV} devel/buildenv ; \ devel/buildenv/bin/pip install --upgrade pip ; \ @@ -202,7 +208,8 @@ devel/buildenv: devel ) # virtualenv for development -devel/testenv: devel +devel/testenv: $(DEVEL_DEPS) + mkdir -p devel [ -d devel/testenv ] \ || ( ${VIRTUALENV} devel/testenv ; \ devel/testenv/bin/pip install --upgrade pip ; \ @@ -211,8 +218,9 @@ devel/testenv: devel devel/testenv/bin/pip install -e '.[test]' ; \ ) -# virtualenv for pytest -devel/pytest: devel dist +# virtualenv for pytest and other code tests +devel/pytest: $(DEVEL_DEPS) + mkdir -p devel if [ ! -d devel/pytest ] ; then \ ( ${VIRTUALENV} devel/pytest ; \ devel/pytest/bin/pip install --upgrade pip ; \ @@ -220,6 +228,9 @@ devel/pytest: devel dist devel/pytest/bin/pip install --upgrade wheel ; \ devel/pytest/bin/pip install dist/${PGWUI_COMPONENT}-*.tar.gz ; \ devel/pytest/bin/pip install flake8 ; \ + if [ -e .yamllint.yaml ] ; then \ + devel/pytest/bin/pip install yamllint ; \ + fi ; \ devel/pytest/bin/pip install pytest-cov ; \ devel/pytest/bin/pip install -e '.[test]' ; \ ) \ @@ -231,7 +242,8 @@ devel/pytest: devel dist fi # virtualenv for pudb -devel/pudb: devel dist +devel/pudb: $(DEVEL_DEPS) + mkdir -p devel if [ ! -d devel/pudb ] ; then \ ( ${VIRTUALENV} devel/pudb ; \ devel/pudb/bin/pip install --upgrade pip ; \ -- 2.34.1